package pers.goetboy.quartz.model.vo;



import lombok.Data;
import lombok.ToString;
import pers.goetboy.common.bean.BeanConverter;

import java.util.Date;

/**
 * @author : goetboy
 * @date 2018 /12 /20
 **/
@Data
@ToString
public class ScheduleJobVo  {

    /**
     * 任务调度的参数key
     */
    public static final String JOB_PARAM_KEY = "jobParam";
    /**
     * 任务id
     */
    private Integer scheduleJobId;

    /**
     * 任务名称
     */
    private String jobName;

    /**
     * 任务别名
     */
    private String aliasName;

    /**
     * 任务分组
     */
    private String jobGroup;

    /**
     * 触发器
     */
    private String jobTrigger;

    /**
     * 任务状态
     */
    private String status;

    /**
     * 任务运行时间表达式
     */
    private String cronExpression;

    /**
     * 是否异步
     */
    private Boolean isSync;

    /**
     * 任务描述
     */
    private String description;

    /**
     * 创建时间
     */
    private Date gmtCreate;

    /**
     * 修改时间
     */
    private Date gmtModify;

    /**
     * 任务执行url
     */
    private String url;
    /**
     * 邮件
     */
    private String email;
    private String param;
    /**
     * 获取自动转换后的JavaBean对象
     *
     * @param clazz
     * @param <T>
     * @return
     */
    public <T> T getTargetObject(Class<T> clazz) {
        try {
            T t = clazz.newInstance();
            return BeanConverter.convert(t, this);
        } catch (Exception e) {
            throw new ClassCastException(e.getMessage());
        }
    }

}
